Colors may be described as different combinations of the red, green, and blue primary lights (“RGB primaries”) of an RGB color space. The main purpose of the RGB color space is for the sensing, representation, and display of images in electronic systems (such as televisions and computers). Different RGB primaries (and RGB color spaces) have been specified to fill the needs of different users and applications. For example, BT.709 specifies the primaries for high-definition (HD) television, and SMPTE Free Scale Gamut (FS-Gamut) defines the primaries for 2K and 4K digital cinema production. The BT.709 primaries have been incorporated into the sRGB standard which is widely used in computing. Currently, most hardware (e.g. computer graphics boards) is capable of storing, producing, or converting media (e.g. digital movies) into RGB data.
To compare one RGB color space to another, it is useful to have a standardized general space within which any visible color can be defined. The CIE (Commission Internationale de L'Éclairage) 1931 XYZ color space (“XYZ color space”) serves as a standard reference against which different RGB color spaces may be defined. The XYZ color space encompasses all color sensations that an average person can experience. More specifically, the XYZ tristimulus values in the XYZ color space correlate to the spectral sensitivity of human vision. In the XYZ color space, any color is represented by an all-positive set of tristimulus values.
The concept of color may also be divided into two parts: chromaticity and luminance Since the Y parameter in the XYZ color space is a measure of the luminance of a color, the XYZ tristimulus values may be normalized to obtain two chromaticity values, x and y, that can be plotted in 2-dimensional space to yield the [x, y] chromaticity diagram. The derived color space specified by x, y, and Y is known as the CIE xyY color space, and is widely used to specify colors in practice.
An RGB color space can be defined using the x and y chromaticity values for the RGB primaries and a white point along a gamma correction curve. For example, the range of colors (gamut) that can be formed from a given set of RGB primaries is given in the [x, y] chromaticity diagram by a triangle whose vertices are the chromaticities of the primaries.
As previously mentioned, the XYZ color space serves as a standard color space from which other RGB color spaces (including non-RGB color spaces) may be defined. As such, it is advantageous to be able to convert from an RGB color space to the XYZ color space and vice versa. For example, a first RGB color space may be converted to the XYZ color space before being converted to a second RGB color space.
If an RGB color space is linear, the RGB values in a particular set of primaries can be converted to the corresponding XYZ values in the XYZ color space using a 3×3 transformation matrix M:
      [                            X                                      Y                                      Z                      ]    =            M      *              [                                            R                                                          G                                                          B                                      ]              =                  [                                                            X                r                                                                    X                g                                                                    X                b                                                                                        Y                r                                                                    Y                g                                                                    Y                b                                                                                        Z                r                                                                    Z                g                                                                    Z                b                                                    ]            ⁡              [                                            R                                                          G                                                          B                                      ]            where X, Y, and Z are the desired tristimulus values; R, G, and B are the displayed RGB values; and the 3×3 transformation matrix M includes the measured tristimulus values for the three channels in a display (e.g., Xr, Yr, and Zr are the measured tristimulus values for the red channel at maximum emission).
The 3×3 transformation matrix M is a square matrix and can be inverted. Thus, the XYZ color space can be easily converted to the RGB color space using the inverse of the transformation matrix M (M−1):
      [                            R                                      G                                      B                      ]    =                    M                  -          1                    *              [                                            X                                                          Y                                                          Z                                      ]              =                            [                                                                      X                  r                                                                              X                  g                                                                              X                  b                                                                                                      Y                  r                                                                              Y                  g                                                                              Y                  b                                                                                                      Z                  r                                                                              Z                  g                                                                              Z                  b                                                              ]                          -          1                    ⁡              [                                            X                                                          Y                                                          Z                                      ]            
In recent years, new display technologies have been developed that extend color spaces to more than three primaries (herein referred to as “multi-primary color spaces”). For example, an RGBE backlight uses emerald LEDs (light-emitting diodes) in addition to red, green, and blue LEDs. As a result, the RGBE color space consists of four primaries (red, green, blue, and emerald). Similarly, an RGBCW color filter array (for example, PenTile™ RGBCW array) includes cyan and white in addition to the red, green, and blue primaries. Accordingly, the RGBCW color space consists of five primaries (red, green, blue, cyan, and white).
The multi-primary color spaces can be converted to the XYZ color space using standard procedures known to those skilled in the art. For example, the RGBE values in the RGBE color space can be converted into the corresponding XYZ values in the XYZ color space using a non-square transformation matrix M′:
      [                            X                                      Y                                      Z                      ]    =                    M        ′            *              [                                            R                                                          G                                                          B                                                          E                                      ]              =                  [                                                            X                r                                                                    X                g                                                                    X                b                                                                    X                e                                                                                        Y                r                                                                    Y                g                                                                    Y                b                                                                    Y                e                                                                                        Z                r                                                                    Z                g                                                                    Z                b                                                                    Z                e                                                    ]            ⁡              [                                            R                                                          G                                                          B                                                          E                                      ]            where X, Y, and Z are the desired tristimulus values; R, G, B, and E are the displayed RGBE values; and the transformation matrix M′ includes the measured tristimulus values for the four channels in the RGBE backlight (e.g., Xe, Ye, and Ze are the measured tristimulus values for the emerald channel at maximum emission). In particular, the transformation matrix M′ for converting from the RGBE color space to the XYZ color space may be generated using chromaticity and luminosity measurements of the RGBE backlight primaries at full brightness.
To leverage the new display technologies listed above, there is a need to convert RGB values in the RGB color space to their corresponding values in a multi-primary color space. For example, there is a need to convert RGB values into RGBE values, so as to make full use of the RGBE backlight. However, there is currently no direct and efficient method for converting RGB values into RGBE values. Although the RGB values and RGBE values can be easily converted into XYZ values (using the respective transformation matrices M and M′), it is difficult to convert the XYZ values into RGBE values because the matrix M′ is non-square and cannot be inverted.
In fact, any transformation matrix that is used to convert a multi-primary color space (e.g., RGBE, RGBCW, RGBCWE, etc.) to the XYZ color space is likely to be a non-square m×n matrix (where m≠n). Unlike the 3×3 square transformation matrix M, the non-square m×n matrix is non-invertible. As a result, it is difficult to convert from the XYZ color space to the multi-primary color spaces.
Accordingly, there is a need for methods and systems that enable quick and efficient conversions from the XYZ color space to the multi-primary color spaces.